# 1. 切片操作的基本使用
a = [1, 2, 3, 4]
print(a[1:3])

# 2. 使用切片的时候, 省略边界.
# a = [1, 2, 3, 4]
# # 省略后边界, 即从开始位置, 一直取到整个列表结束
print(a[1:])    # [2, 3, 4]
# 省略前边界, 即从列表的 0 号元素开始取, 一直取到结束的后边界
print(a[:2])    # [1, 2]
# 切片下标使用负数，即打印到倒数第一个之前
print(a[:-1])   # [1, 2, 3]
# 把开始边界和结束边界都省略掉 得到的还是列表自身
print(a[:]) # [1, 2, 3, 4]

# 3. 带有步长的切片操作.
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[::1])   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[::2])   # [1, 3, 5, 7, 9]
# print(a[::3])
print(a[1:-1:2])    # [2, 4, 6, 8]

# 4. 步长的数值还可以是负数. 当步长为负数的时候, 意思是从后往前来取元素.
print(a[::-1])  # [0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(a[::-2])  # [0, 8, 6, 4, 2]

# 5. 当切片中的范围超出有效下标之后, 不会出现异常! 而是尽可能的把符合要求的元素给获取到.
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[1:100]) # [2, 3, 4, 5, 6, 7, 8, 9, 0]